﻿Imports ISNet.WebUI.WebGrid
Imports System
Imports System.Data
Imports System.Configuration
Imports System.Collections
Imports System.Web
Imports System.Web.Security
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.WebControls.WebParts
Imports System.Web.UI.HtmlControls
Imports log4net

Partial Class mtActivies
    Inherits System.Web.UI.Page

    Private Shared logger As ILog = LogManager.GetLogger("mtActivies")

    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load

        ScreenName.Text = "ระบบจัดทำงบประมาณ  >>  ตั้งค่าระบบ >>  กิจกรรม"
        'Session("users") = "bb0011"
        If Session("users") Is Nothing Then
            Response.Redirect("LoginForm.aspx")
        End If
        'If Session("RoleType") Is Nothing Or Not (Val(Session("RoleType")) = 5 Or Val(Session("RoleType")) = 1) Then
        'Response.Redirect("UnAuthorize.aspx")
        'End If

        If IsPostBack = False Then

            PlanYearsTxt.Text = Session("PlanYear")
            Session("SearchTxt") = ""
            Session("SearchTxt") = " and PlanYear = " & PlanYearsTxt.Text
            Session("PlanYearTxt") = PlanYearsTxt.Text
        Else
            ' PlanYearsTxt.Text = Session("PlanYearTxt")
        End If
    End Sub

    Protected Sub WebGrid1_InitializeDataSource(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.DataSourceEventArgs) Handles WebGrid1.InitializeDataSource
        If Session("SearchTxt") = "" Then
            Exit Sub
        End If
        Dim adapter As New MasterDataSetTableAdapters.ActivitiesTableAdapter
        Dim dtTable As New MasterDataSet.ActivitiesDataTable

        Dim sql As String = "select * from Activities "
        sql += " WHERE 1 = 1 "

        sql += Session("SearchTxt")

        sql += " ORDER BY ActivityCode, PlanYear "

        adapter.SearchActivity(dtTable, sql)
        'Response.Write(sql)
        ' WebGrid1.ClientAction.Alert(PlanYearsTxt.Text)
        Session("count_data") = dtTable.Rows.Count

        dtTable.Columns("Id").ReadOnly = False
        dtTable.Columns("PlanYear").AllowDBNull = True
        dtTable.Columns("ActivityCode").AllowDBNull = True
        dtTable.Columns("Description").AllowDBNull = True

        e.DataSource = dtTable

    End Sub

    Protected Sub WebGrid1_InitializeRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs)
        ' don't edit column
        e.Row.Cells(4).ForceNoEdit = True
    End Sub

    Protected Sub WebGrid1_AddRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs)
        Dim adapter As New MasterDataSetTableAdapters.ActivitiesTableAdapter
        ' Dim id As Decimal
        'id = adapter.InsertFCenter(e.Row.Cells(0).Value, e.Row.Cells(1).Value, e.Row.Cells(2).Value, Date.Now, Session("users"))
        Dim check = adapter.CheckExistActivity(e.Row.Cells(1).Value, e.Row.Cells(2).Value)

        If Val(check) > 0 Then
            'WebGrid1.ClientAction.Refresh()
            WebGrid1.ClearCachedDataSource()
            Throw New ArgumentException("ข้อมูลกิจกรรมซ้ำกับที่มีอยู่ กรุณาตรวจสอบ")
        Else
            Dim id As Decimal
            id = adapter.InsertActivity(e.Row.Cells(1).Value, e.Row.Cells(2).Value, e.Row.Cells(3).Value, Date.Now, Session("users"))
            Dim dr As DataRow = e.Row.DataRow
            dr("id") = id

            logger.Info("User " & Session("users") & " insert activity " & e.Row.Cells(1).Value)
        End If
        WebGrid1.ClientAction.Refresh()
    End Sub

    Protected Sub WebGrid1_UpdateRow(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.RowEventArgs)
        Dim id As String
        id = e.Row.KeyValue
        'WebGrid1.ClientAction.Alert(iyear)

        Dim adapter As New MasterDataSetTableAdapters.ActivitiesTableAdapter
        Dim check = adapter.CheckExistUpdate(e.Row.Cells(1).Value, e.Row.Cells(1).Value, id)

        If Val(check) > 1 Then
            WebGrid1.ClientAction.Refresh()
            WebGrid1.ClearCachedDataSource()
            Throw New ArgumentException("ข้อมูลกิจกรรมซ้ำกับที่มีอยู่ กรุณาตรวจสอบ")
        Else
            adapter.UpdateActivity(e.Row.Cells(1).Value, e.Row.Cells(2).Value, e.Row.Cells(3).Value, Date.Now, Session("users"), id)
            logger.Info("User " & Session("users") & " update activity " & e.Row.Cells(1).Value)
        End If
        WebGrid1.ClientAction.Refresh()
    End Sub

    Protected Sub WebGrid1_InitializePostBack(ByVal sender As Object, ByVal e As ISNet.WebUI.WebGrid.PostbackEventArgs) Handles WebGrid1.InitializePostBack
        If e.Action = PostBackAction.Custom Then
            Dim type As String = TryCast(Request("type"), String)
            Dim Deletet As String = TryCast(Request("id"), String)
            Dim code As String = TryCast(Request("code"), String)
            Dim yr As String = TryCast(Request("year"), String)
            Dim adapter As New MasterDataSetTableAdapters.ActivitiesTableAdapter
            Dim adap2 As New MasterDataSetTableAdapters.checkusedTableAdapter

            Try
                Dim used As Integer = adap2.CheckActivities(code, Val(yr))

                If type = "1" Then
                    If used = 0 Then
                        adapter.DeleteActivity(Deletet)
                        logger.Info("User " & Session("users") & " delete activity " & Deletet)
                    Else
                        WebGrid1.ClientAction.Alert("ไม่สามารลบข้อมูลได้เนื่องจากข้อมูลถูกนำไปใช้งานแล้ว")
                    End If

                ElseIf type = "2" Then
                    If used = 0 Then
                        For Each keyValue As String In WebGrid1.RootTable.GetCheckedRows()
                            adapter.DeleteActivity(keyValue)
                        Next keyValue
                    Else
                        WebGrid1.ClientAction.Alert("ไม่สามารลบข้อมูลบางรายการได้เนื่องจากข้อมูลถูกนำไปใช้งานแล้ว")
                    End If
                End If
               
            Catch ex As Exception
                WebGrid1.ClientAction.Alert("ไม่สามารลบข้อมูลได้กรุณาติดต่อผู้ดูแลระบบ")
            End Try

            WebGrid1.ClientAction.Refresh()
        End If
    End Sub
    Protected Sub SearhBtn_Click(sender As Object, e As ImageClickEventArgs) Handles SearhBtn.Click
        Session("SearchTxt") = ""

        If PlanYearsTxt.Text.Trim <> "" Then
            Session("SearchTxt") += " and PlanYear = '" & PlanYearsTxt.Text.Trim & "'"
        End If
        If SearchCode.Text.Trim <> "" Then
            Session("SearchTxt") += " and ActivityCode like '%" & SearchCode.Text.Trim & "%'"
        End If
        If SearchTxt.Text.Trim <> "" Then
            Session("SearchTxt") += " and Description like '%" & SearchTxt.Text.Trim & "%'"
        End If
        'WebGrid1.ClientAction.Alert(Session("SearchTxt"))
        WebGrid1.ClearCachedDataSource()
        WebGrid1.RebindDataSource()
        t_countdata.Visible = True
        If Val(Session("count_data")) > 0 Then
            L_CountData.Text = FormatNumber(Val(Session("count_data")), 0) & " รายการ"
        Else
            L_CountData.Text = "ไม่พบข้อมูลที่ค้นหา"
        End If
    End Sub

    Protected Sub SaveBtn_Click(sender As Object, e As ImageClickEventArgs) Handles SaveBtn.Click
        WebGrid1.ClearCachedDataSource()
        WebGrid1.RebindDataSource()
    End Sub

End Class
